/*
 *定义日志消息器，进行日志中间信息的存储
 1.日志的输出时间    用于过滤日志输出时间
 2. 日志等级     用于进行日志过滤分析
 3. 源文件分析
 4. 源代码行号   用于定位出现错误的行号
 5.线程ID    用于过滤出错的线程
 6.日志主题消息
 7. 日志起名称   (当前支持多日志器的同时使用)
 *

*/

#include <iostream>
#include <string>
#include <pthread.h>
#include <thread>
#include "level.hpp"
#include "util.hpp"

namespace log
{
    struct LogMessage
    {
        time_t _ctime;          // 日志产生的时间戳
        LogLevel::value _level; // 日志等级
        std::string _file;      // 源码文件名
        size_t _line;           // 日志的行号
        std::thread::id _tid;   // 线程的ID
        std::string _logger;    //  日志器名称
        std::string _payload;   // 日志信息里面的有效载荷数(有效消息数据)

        LogMessage(LogLevel::value level, size_t line, const std::string file, const std::string logger, const std::string payload)
            : _level(level), _ctime(log::util::Data::getTime()), _line(line), _file(file), _logger(logger), _payload(payload), _tid(pthread_self()) {}
    };
}
